As is well known, modern microcontrollers are provided with on-board memory circuits to store both programs and data on the same IC.
In this specific technical field there is a felt need to have at least an EEPROM portion of the memory macrocell to be used just as a non-volatile memory for parameter storage and for defining non-volatile pointers of the stored data.
However, Flash and EEPROM technologies are not compatible and the higher integration degree and much lower cost of the Flash devices would suggest to realize memory macrocell including just Flash memory cells.
The memory circuit structure should comprises three portions: a main Flash memory portion, a small OTP (One-Time-Programmable) portion and an EEPROM memory portion.
The Flash memory portion should include at least four sectors.
Flash and EEPROM portions have respective sense amplifiers so that one memory portion can be read while the other memory portion is written. However, simultaneous Flash and EEPROM write operations are not allowed. Also not allowed is erasing of the EEPROM portion while writing on the Flash portion.
Flash memory devices may be electrically erased by erasing the whole memory portion; while the EEPROMs may be erased on a byte by byte basis.
The memory macrocell has a register interface mapped in the memory area. All the operations are enabled through two control registers, one register FCR for the Flash (and OTP) portion operations and another one ECR for the EEPROM portion operations.
The status of a write operation inside the Flash portion can be monitored by a dedicated status register.
A known prior art solution allows the above operations by using an EEPROM software emulation addressing two Flash sectors which are dedicated to EEPROM emulation.
At each data update a pointer is added to find the new data. When a Flash sector is full all the data are swapped to the other sector. An unused sector is erased in background.
This solution presents good cycling performances in the same few bytes are continuously updated.
However, there are also some drawbacks which are listed hereinafter:                the best emulation is obtained by a huge managing software, at least 20 Kbytes, which must be stored in the same memory circuit;        it might be necessary to wait for erase suspend before accessing at the EEPROM for read and write operations;        a long read access time has been found during experimentation.        